#ifndef FILE_TRANSFER_H

#define FILE_TRANSFER_H
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>

#define FILENAME_SZ 256
// |file_protocol_head| filedata|
typedef struct file_protocol{
    size_t filesize;
    char filename[FILENAME_SZ];
} file_protocol_t;

// 接受协议头信息
extern int recv_protocol_head(int sockfd, file_protocol_t * p_head);
// 接受文件数据
extern int recv_filedata(int sockfd, char * filename, size_t targetsize);
// 文件上传
extern int client_upload_file(int cfd);
// 上传文件协议头
extern int send_protocol_head(const char * filename, int sockfd);
// 客户端文件上传
extern int upload_file(const * filename, int sockfd);

#endif